News All Tests
Current file: /home/estudydev/workspace/MSP09/web/news/tests/class.chatinfo.inc.php
Legend: executed not executed dead code

  Coverage
  Classes Methods Lines
Total
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 5
3.53 %3.53%
3.53% 3 / 85
 
ChatInfo
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 5
1.20 %1.20%
1.20% 1 / 83
 public function ChatInfo($id, $image = NULL)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function updateLogin($oldLogin, $newLogin, $password)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 19
 public function createNewUser($login, $password)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 28
 private function connectUserService($paramArray)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 22
 public function getJID()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 9


       1                 : <?php                                                                                                          
       2                 :                                                                                                                
       3                 : /*--------------------------------------------------------------------------+                                  
       4                 : This file is part of eStudy                                                                                    
       5                 : externaltools/classes/class.chatinfo.inc.php                                                                   
       6                 : - Modulgruppe:  ExternalTools                                                                                  
       7                 : - Beschreibung: In dieser Datei ist die Klasse ChatInfo implementiert.                                         
       8                 : - Version:      1.1 02-07-07                                                                                   
       9                 : - Autor(en):    AJAX-Team                                                                                      
      10                 : +---------------------------------------------------------------------------+                                  
      11                 : This program is free software; you can redistribute it and/or                                                  
      12                 : modify it under the terms of the GNU General Public License                                                    
      13                 : as published by the Free Software Foundation; either version 2                                                 
      14                 : of the License, or any later version.                                                                          
      15                 : +---------------------------------------------------------------------------+                                  
      16                 : This program is distributed in the hope that it will be useful,                                                
      17                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                                                 
      18                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                  
      19                 : GNU General Public License for more details.                                                                   
      20                 : You should have received a copy of the GNU General Public License                                              
      21                 : along with this program; if not, write to the Free Software                                                    
      22                 : Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                                    
      23                 : +--------------------------------------------------------------------------*/                                  
      24                 :                                                                                                                
      25                 : /**                                                                                                            
      26                 :  * Die Basisklasse                                                                                             
      27                 :  */                                                                                                            
      28               1 : require_once ("class.toolinfo.inc.php");                                                                       
      29                 :                                                                                                                
      30                 : /**                                                                                                            
      31                 :  * Klasse zum Anlegen eines neuen Adresseintrages im Profil                                                    
      32                 :  */                                                                                                            
      33               1 : require_once ("class.editcontact.inc.php");                                                                    
      34                 :                                                                                                                
      35                 : /**                                                                                                            
      36                 : * ToolInfo Klasse für Chat                                                                                    
      37                 : * @package eStudy.ExternalTools                                                                                
      38                 : * @version 1.1, 02-07-07                                                                                       
      39                 : * @author AJAX-Team                                                                                            
      40                 : */                                                                                                             
      41               1 : class ChatInfo extends ToolInfo {                                                                              
      42                 :                                                                                                                
      43                 :     private $result = '';                                                                                      
      44                 :                                                                                                                
      45                 :                                                                                                                
      46                 :     /**                                                                                                        
      47                 :      * Erzeugt ein neues ChatInfo Objekt.                                                                      
      48                 :      * @param integer $id - die Tool ID                                                                        
      49                 :      * @param string $image - das Icon, das angezeigt werden soll.                                             
      50                 :      */                                                                                                        
      51                 :     public function ChatInfo($id, $image = null) {                                                             
      52               0 :         parent :: ToolInfo($image);                                                                            
      53               0 :         $this->toolName = 'Chat';                                                                              
      54               0 :         $this->toolID = $id;                                                                                   
      55               0 :     }                                                                                                          
      56                 :                                                                                                                
      57                 :                                                                                                                
      58                 :     /**                                                                                                        
      59                 :     * Aktualisiert die Jabber Benutzerdaten, nachdem der                                                       
      60                 :     * eStudy-Benutzer innerhalb von eStudy seine Logindaten geändert hat.                                     
      61                 :     *                                                                                                          
      62                 :     * Parameter siehe http://www.igniterealtime.org/projects/openfire/plugins/userservice/readme.html          
      63                 :     *                                                                                                          
      64                 :     * @access public                                                                                           
      65                 :     * @param String $oldLogin - Der alte Loginname des Benutzers.                                              
      66                 :     * @param String $newLogin - Der neue Loginname des Benutzers.                                              
      67                 :     * @param String $password - Das Passwort des Benutzers.                                                    
      68                 :     * @return bool - <i>true</i> wenn alles geklappt hat.                                                      
      69                 :     */                                                                                                         
      70                 :     public function updateLogin($oldLogin, $newLogin, $password) {                                             
      71               0 :         global $settings;                                                                                      
      72               0 :         $bool = false;                                                                                         
      73                 :                                                                                                                
      74                 :         // Jabber deaktiviert                                                                                  
      75               0 :         if(!$settings['jabber_use_jabber'])                                                                    
      76               0 :             return false;                                                                                      
      77                 :                                                                                                                
      78                 :         // Parameter für das updaten eines vorhandenen Nutzers                                                
      79               0 :         $paramArray['type'] = 'update';                                                                        
      80               0 :         $paramArray['secret'] = $settings['jabber_secret'];                                                    
      81               0 :         $paramArray['password'] = $password;                                                                   
      82               0 :         $paramArray['name'] = $_SESSION['Vorname'] . ' ' . $_SESSION['Nachname'];                              
      83               0 :         $paramArray['username'] = $newLogin;                                                                   
      84                 :                                                                                                                
      85               0 :         $this->connectUserService($paramArray);                                                                
      86                 :                                                                                                                
      87                 :         /*                                                                                                     
      88                 :          * <result>ok</result> = Operation hat funktioniert (d'oh)                                             
      89                 :          * <error>UserNotFoundException</error> = User existiert noch nicht => anlegen                         
      90                 :          */                                                                                                    
      91               0 :         switch(trim($this->result)) {                                                                          
      92               0 :             case '<result>ok</result>':                                                                        
      93               0 :                 $bool = true;                                                                                  
      94               0 :                 break;                                                                                         
      95               0 :             case '<error>UserNotFoundException</error>':                                                       
      96               0 :                 $bool = $this->createNewUser($newLogin, $password);                                            
      97               0 :                 break;                                                                                         
      98               0 :         }                                                                                                      
      99                 :                                                                                                                
     100                 :         // Boolean                                                                                             
     101               0 :         return $bool;                                                                                          
     102                 :     }                                                                                                          
     103                 :                                                                                                                
     104                 :                                                                                                                
     105                 :     /**                                                                                                        
     106                 :     * Erstellt einen Nutzer in OpenFire                                                                        
     107                 :     *                                                                                                          
     108                 :     * Parameter siehe http://www.igniterealtime.org/projects/openfire/plugins/userservice/readme.html          
     109                 :     *                                                                                                          
     110                 :     * @access public                                                                                           
     111                 :     * @param String $login - Loginname des Benutzers                                                           
     112                 :     * @param String $password - Das Passwort des Benutzers.                                                    
     113                 :     * @return bool - <i>true</i> wenn alles geklappt hat.                                                      
     114                 :     */                                                                                                         
     115                 :     public function createNewUser($login, $password) {                                                         
     116               0 :         global $settings;                                                                                      
     117               0 :         $bool = false;                                                                                         
     118                 :                                                                                                                
     119                 :         // Jabber deaktiviert                                                                                  
     120               0 :         if(!$settings['jabber_use_jabber'])                                                                    
     121               0 :             return false;                                                                                      
     122                 :                                                                                                                
     123                 :         // Parameter für das hinzufügen eines neuen Nutzers                                                  
     124               0 :         $paramArray['type'] = 'add';                                                                           
     125               0 :         $paramArray['secret'] = $settings['jabber_secret'];                                                    
     126               0 :         $paramArray['username'] = $login;                                                                      
     127               0 :         $paramArray['password'] = $password;                                                                   
     128               0 :         $paramArray['name'] = $_SESSION['Vorname'] . ' ' . $_SESSION['Nachname'];                              
     129                 :                                                                                                                
     130               0 :         $this->connectUserService($paramArray);                                                                
     131                 :                                                                                                                
     132                 :         /*                                                                                                     
     133                 :          * <result>ok</result> = Operation hat funktioniert (d'oh)                                             
     134                 :          * <error>UserAlreadyExistsException</error> = User existiert bereits                                  
     135                 :          */                                                                                                    
     136               0 :         switch(trim($this->result)) {                                                                          
     137               0 :             case '<result>ok</result>':                                                                        
     138               0 :                 $bool = true;                                                                                  
     139               0 :                 break;                                                                                         
     140               0 :             case '<error>UserAlreadyExistsException</error>':                                                  
     141               0 :                 $bool = false;                                                                                 
     142               0 :                 break;                                                                                         
     143               0 :         }                                                                                                      
     144                 :                                                                                                                
     145                 :         /*                                                                                                     
     146                 :          * Neue Jabber-Adresse ins Profil-Adressbuch eintragen                                                 
     147                 :          */                                                                                                    
     148               0 :         if($bool) {                                                                                            
     149               0 :             $newAdress = new EditContact($_SESSION['userid'], -1);                                             
     150               0 :             $newAdress->newContact['contacttypeID'] = 9;    // 9 == Jabber                                     
     151               0 :             $newAdress->newContact['value'] = $login . $this->getJID();                                        
     152               0 :             $newAdress->newContact['showFlag'] = 0;    // 0 == nicht anzeigen                                  
     153               0 :             $newAdress->newContact['userID'] = $newAdress->userID;                                             
     154               0 :             $newAdress->newContact['contactID'] = 0;                                                           
     155               0 :             $val = $newAdress->addContact();                                                                   
     156               0 :         }                                                                                                      
     157                 :                                                                                                                
     158               0 :         return $bool;                                                                                          
     159                 :     }                                                                                                          
     160                 :                                                                                                                
     161                 :                                                                                                                
     162                 :     /**                                                                                                        
     163                 :     * Führt einen URL Connect auf die übergebene URL durch                                                   
     164                 :     * @access private                                                                                          
     165                 :     * @param Array $paramArray - URL Parameter                                                                 
     166                 :     * @return bool                                                                                             
     167                 :     */                                                                                                         
     168                 :     private function connectUserService($paramArray) {                                                         
     169               0 :         global $settings;                                                                                      
     170               0 :         $param = '';                                                                                           
     171               0 :         $i = 0;                                                                                                
     172                 :                                                                                                                
     173               0 :         if (!function_exists("curl_init"))                                                                     
     174               0 :             return false;                                                                                      
     175                 :                                                                                                                
     176                 :         // Aus dem Array die URL Parameter zusammenbauen                                                       
     177               0 :         while(list($key, $val) = each($paramArray)) {                                                          
     178               0 :             if(!empty($val)) {                                                                                 
     179               0 :                 if($i == 0)                                                                                    
     180               0 :                     $param .= '?' . $key . '=' . urlencode(utf8_encode($val));                                 
     181                 :                 else                                                                                           
     182               0 :                     $param .= '&' . $key . '=' . urlencode(utf8_encode($val));                                 
     183               0 :             }                                                                                                  
     184                 :                                                                                                                
     185               0 :             $i++;                                                                                              
     186               0 :         }                                                                                                      
     187                 :                                                                                                                
     188               0 :         $url = curl_init('http://' . $settings['jabber_server'] . '/plugins/userService/userservice' . $param);
     189                 :                                                                                                                
     190               0 :         curl_setopt($url, CURLOPT_RETURNTRANSFER, 1);                                                          
     191               0 :         curl_setopt($url, CURLOPT_TIMEOUT, 120);                                                               
     192               0 :         curl_setopt($url, CURLOPT_CONNECTTIMEOUT, 10);                                                         
     193               0 :         $this->result = curl_exec($url);                                                                       
     194               0 :         curl_close($url);                                                                                      
     195                 :                                                                                                                
     196               0 :         if ($this->result)                                                                                     
     197               0 :             return true;                                                                                       
     198                 :         else                                                                                                   
     199               0 :             return false;                                                                                      
     200                 :                                                                                                                
     201                 :     }                                                                                                          
     202                 :                                                                                                                
     203                 :                                                                                                                
     204                 :     /**                                                                                                        
     205                 :     * JID aus der Jabber Server URL extrahieren                                                                
     206                 :     *                                                                                                          
     207                 :     * @access public                                                                                           
     208                 :     * @return String                                                                                           
     209                 :     */                                                                                                         
     210                 :     public function getJID() {                                                                                 
     211               0 :         global $settings;                                                                                      
     212                 :                                                                                                                
     213               0 :         if(isset($settings['jabber_server']) && $settings['jabber_server'] != '')                              
     214               0 :         {                                                                                                      
     215               0 :             $portpos = strpos($settings['jabber_server'], ":");                                                
     216               0 :             if ($portpos === false )                                                                           
     217               0 :                 $domain = $settings['jabber_server'];                                                          
     218                 :             else                                                                                               
     219               0 :                 $domain = substr($settings['jabber_server'], 0, $portpos);                                     
     220               0 :             return '@' . $domain;                                                                              
     221                 :         }                                                                                                      
     222                 :         else                                                                                                   
     223               0 :             return false;                                                                                      
     224                 :     }                                                                                                          
     225                 :                                                                                                                
     226                 : }                                                                                                              
     227                 : ?>                                                                                                             

Generated by PHPUnit 3.2.21 and Xdebug 2.0.4 at Sat Nov 7 22:04:08 CET 2009.